package com.fire.control.system.module.company.service;

import javax.servlet.http.HttpServletRequest;

import com.fire.control.system.dto.UserDTO;
import com.fire.control.system.standard.BusinessInterfaceStandard;
import com.fire.control.system.support.protocol.comman.ResponseProtocol;
import com.fire.control.system.support.protocol.management.ManagementRequestProtocol;

/**
 * @author liuxincheng
 * @ClassName: ICompanyService
 * @Description: TODO(企业服务)
 * @author A18ccms a18ccms_gmail_com
 * @date 2017年5月9日 下午2:15:55
 */
public interface IManagementService extends BusinessInterfaceStandard<ManagementRequestProtocol, ResponseProtocol> {
	
    /**
     * @author  liuxincheng
     * @Title: getCompanyListByCodition
     * @Description: TODO(通过条件查询企业列表)
     * @param @param requestProtocol
     * @param @param p
     * @param @return    设定文件
     * @return ResponseProtocol    返回类型
     * @throws null
     */
    public ResponseProtocol getManagementListByCondition(ManagementRequestProtocol requestProtocol);
    
    /**
     * @author liuxincheng
     * @Title: getDeviceGroups
     * @Description: TODO(获取设备组)
     * @param @param requestProtocol
     * @param @return    设定文件
     * @return ResponseProtocol    返回类型
     * @throws null
     */
    public ResponseProtocol getDeviceTypeList(ManagementRequestProtocol requestProtocol,HttpServletRequest request);
    
    /**
     * @author liuxincheng
     * @Title: getManagementListByCondition
     * @Description: TODO(获得选中单位信息)
     * @param @param requestProtocol
     * @param @return    设定文件
     * @return ResponseProtocol    返回类型
     * @throws
     */
    public ResponseProtocol getCheckManagementList(ManagementRequestProtocol requestProtocol);
    /**
     * @author liuxincheng
     * @Title: getUserListByCompanyId
     * @Description: TODO(根据企业Id获取用户列表)
     * @param @param requestProtocol
     * @param @return    设定文件
     * @return ResponseProtocol    返回类型
     * @throws null
     */
    public ResponseProtocol getUserListByCompanyId(ManagementRequestProtocol requestProtocol);
    /**
     * @author  liuxincheng
     * @Title: saveCompanyInfo
     * @Description: TODO(添加企业)
     * @param @param requestProtocol
     * @param @return    设定文件
     * @return ResponseProtocol    返回类型
     * @throws
     */
    public ResponseProtocol saveManagementInfo(ManagementRequestProtocol requestProtocol,UserDTO user);
    
    /**
     * @author  liuxincheng
     * @Title: deleteCompanyById
     * @Description: TODO(删除选中的企业信息)
     * @param @param requestProtocol
     * @param @return    设定文件
     * @return ResponseProtocol    返回类型
     * @throws
     */
    public ResponseProtocol deleteManagementInfo(ManagementRequestProtocol requestProtocol);
    
    /**
     * @author  liuxincheng
     * @Title: updateCompanyInfo
     * @Description: TODO(修改企业信息)
     * @param @param requestProtocol
     * @param @return    设定文件
     * @return ResponseProtocol    返回类型
     * @throws null
     */
    public ResponseProtocol updateManagementInfo(ManagementRequestProtocol requestProtocol,UserDTO user);
    
    /**
     * @author  liuxincheng
     * @Title: updateCompanyStatus
     * @Description: TODO(修改账户状态)
     * @param @param requestProtocol
     * @param @return    设定文件
     * @return ResponseProtocol    返回类型
     * @throws null 
     */
    public ResponseProtocol updateManagementStatus(ManagementRequestProtocol requestProtocol);
    
    /**
     * 
     * @author liuxincheng
     * @Title: getParentCompany
     * @Description: TODO(获得上层单位)
     * @param @param requestProtocol
     * @param @return    设定文件
     * @return ResponseProtocol    返回类型
     * @throws
     */
    public ResponseProtocol getParentCompany(ManagementRequestProtocol requestProtocol,UserDTO user);
}
